tmem: reclaim minimal memory proactively
authorKeir Fraser <keir.fraser@citrix.com>
Wed, 9 Dec 2009 10:44:56 +0000 (10:44 +0000)
committerKeir Fraser <keir.fraser@citrix.com>
Wed, 9 Dec 2009 10:44:56 +0000 (10:44 +0000)
commit51010e4de3d40cd83549768c2cf10ecdcf6ee4a8
treeea18e6921dd14d075e32d4b263cb6a16d674203c
parent9905ac2b90a3e7cecd9e7dfe21c252362e7080b2
tmem: reclaim minimal memory proactively

When a single domain is using most/all of tmem memory
for ephemeral pages belonging to the same object, e.g.
when copying a single huge file larger than ephemeral
memory, long lists are traversed looking for a page to
evict that doesn't belong to this object (as pages in
the object for which a page is currently being inserted
are locked and cannot be evicted).  This is essentially
a livelock.

Avoid this by proactively ensuring there is a margin
of available memory (1MB) before locks are taken on
the object.

Signed-off-by: Dan Magenheimer <dan.magenheimer@oracle.com>
xen/common/tmem.c
xen/include/xen/tmem_xen.h